Data access is the input, update, deletion and retrieval of data in a computer system. It is often referred to as a query or a request. Data access customer service is a model of data access that treats the data center (Information Services/Systems) as a provider of goods (the data) and services (access to the data), and the data consumer (user) as a customer. The invention described herein can be applied to any data access system. It is however particularly useful when applied to a data warehouse environment.
Data warehousing refers generally to the maintenance, access and management of extremely large databases. Commercial environments in which such databases exist may include, for example, a large retail chain, which maintains a database of all products in inventory throughout all of its retail stores in the country. Large corporations may maintain databases with billions of records related to past and present employees, items sold, etc. In such commercial environments, databases may be accessed thousands or even millions of times per day. Tasks for which the database is utilized include report generation, responding to queries of various personnel, etc.
A major issue that arises in connection with the use of any data access system is performance. Performance relates to how quickly the users receive data they requested. There are many techniques utilized to improve the performance of queries. Basic techniques include indexing, partitioning and SQL optimizations (SQL is the language of data access in relational databases). These techniques focus on data management system metrics (i.e., system centric). Other techniques focus on how users are accessing the data (i.e., user centric). One such user centric technique is referred to as a ‘Hot Response Cache’ (HRC). The HRC improves the performance of queries by identifying “predictable and repeated information requests”. This information is then retrieved ahead of time by the system and placed in an accessible cache. This cache is then searched by an application prior to sending a request to the database. If the data is found to be available in the cache it can be quickly presented to the user and the large database is never accessed. One of the problems with this solution is the application dependency. Each application that wants to use the cache must have prior knowledge of it and must provide appropriate security. This prevents the use of ad-hoc query tools (tools that allow a user to write and execute their own queries) and other third-party query generating tools that are commonly used to access data from a data warehouse. It also puts the burden of security in the application. Even if the application uses a centrally managed security table, enforcement of security policies must be duplicated across any applications that access the data. Since many applications are written by independent development organizations, this offers at best inconsistent, at worst incomplete implementations of security policy enforcement.
Even beyond the use of the HRC, security is a major issue that arises in connection with the use of data management systems. For example, it is important to insure that only the appropriate personnel are permitted to access sensitive records. Additionally, a separation of duty policy may be required to insure that certain transactions are only carried out with two different people. An example of such a transaction is the ordering of equipment, which ideally should require one person to authorize and a second person to pay for. Many systems include various techniques to insure that the separation of duties policy is enforced by requiring at least two people to participate in a transaction. An employee who wishes to fraudulently purchase items for his or her own personal use will have to conspire with a second employee to do the same, and thus, the chance of fraud is reduced. Security policies are commonly applied to the individual user and the users' role within the organization.
Another issue requiring attention in such large data warehousing systems is that of report scheduling and generation. Specifically, reports can often involve extremely lengthy database access to millions of records, and can easily consume a large amount of system resources. A brut force way of dealing with this problem is to simply schedule the reports during off hours. This is not the optimum solution since there may be certain reports that are time critical. Moreover, to the extent there are a large number of reports scheduled during off-hours, the off hours will become the very busy hours and the system will become overloaded at that time as well.
Still another major issue with accessing large data warehousing systems is the sheer size and complexity that makes it difficult for users to find and access the appropriate information for their needs. One current solution is the emergence of the enterprise information portal (EIP). EIPs provide a customized solution to the complexity problem. EIPs provide an integrated customizable interface to the information required by a user. The information is generally tailored to the user's role within the organization. While EIPs provide a reasonable solution to the complexity problem, they do not attempt to provide performance or security solutions. The user's role should correspond to the same role used by the security system, but will generally require separate maintenance. The profiles are used to customize the view a particular user has of the database, different profiles must be maintained to be used for intrusion detection or performance improvements.
There are a variety of database and non-database third party packages that attempt to crudely deal with each of the above issues as well as others. Most of these prior solutions have a variety of problems. First, there is no known solution that can deal with all of these problems in a convenient and user-friendly way and that maximizes the use of the database for all involved. Additionally, there is no known system for solving the problems of separation of duties, report generation, and query optimization in a manner that allows any technique to be used across multiple databases.
In view of the above, there exists a need in the art for a single comprehensive solution which will provide for optimized data warehousing management, security, access control, user-friendliness, and report generation.